package cs2340.spring13.team3.wheresmystuff.model;

/**
 * This interface provides a facade with which to access the data model.
 * 
 * THIS CLASS HAS BEEN DEPRECATED BUT NOT REMOVED YET
 */

public interface IModel {

	/**
	 * Adds a new User to the model
	 * 
	 * @param u
	 *            The User object to be added
	 */

	void addUser(User u);

	/**
	 * Checks if a User with the given email address exists in the model
	 * 
	 * @param email
	 *            The email address of the User to check for
	 * 
	 * @return True if a User with the given email address exists in the model;
	 *         false otherwise
	 */

	boolean checkUserExists(String email);

	/**
	 * Checks if the given password hash matches the password hash of the User
	 * with the given email address
	 * 
	 * @param email
	 *            The email address of the User whose password hash to check
	 * @param passHash
	 *            The password hash to check against that of the User
	 * 
	 * @return True if the User with the given email exists and matches the
	 *         given password hash; false otherwise
	 */

	boolean checkPassHash(String email, String passHash);

	/**
	 * Returns the User with the given email address
	 * 
	 * @param email
	 *            The email address of the desired User
	 * 
	 * @return The User with the given email address; null if no user with the
	 *         given email address exists
	 */

	User getUser(String email);
}
